package com.imut.lagain.entity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.NotNull;

import java.time.LocalDateTime;

/**
 * 心情偷取记录实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("mood_steal_record")
public class MoodStealRecord {
    private static final Logger log = LoggerFactory.getLogger(MoodStealRecord.class);

    
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 小偷ID
     */
    @NotNull(message = "小偷ID不能为空")
    @TableField("thief_id")
    private Long thiefId;
    
    /**
     * 偷取者ID
     */
    @NotNull(message = "偷取者ID不能为空")
    @TableField("thief_user_id")
    private Long thiefUserId;
    
    /**
     * 被偷者ID
     */
    @NotNull(message = "被偷者ID不能为空")
    @TableField("victim_user_id")
    private Long victimUserId;
    
    /**
     * 被偷条目ID
     */
    @NotNull(message = "被偷条目ID不能为空")
    @TableField("entry_id")
    private Long entryId;
    
    /**
     * 偷取时间
     */
    @TableField("steal_time")
    private LocalDateTime stealTime;
    
    /**
     * 是否尝试追回
     */
    @TableField("recovery_attempted")
    private Boolean recoveryAttempted = false;
    
    /**
     * 追回是否成功
     */
    @TableField("recovery_success")
    private Boolean recoverySuccess;
    
    /**
     * 条目是否保留
     */
    @TableField("entry_kept")
    private Boolean entryKept = true;
    
    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public Long getThiefId() {
        return thiefId;
    }
    
    public void setThiefId(Long thiefId) {
        this.thiefId = thiefId;
    }
    
    public Long getThiefUserId() {
        return thiefUserId;
    }
    
    public void setThiefUserId(Long thiefUserId) {
        this.thiefUserId = thiefUserId;
    }
    
    public Long getVictimUserId() {
        return victimUserId;
    }
    
    public void setVictimUserId(Long victimUserId) {
        this.victimUserId = victimUserId;
    }
    
    public Long getEntryId() {
        return entryId;
    }
    
    public void setEntryId(Long entryId) {
        this.entryId = entryId;
    }
    
    public LocalDateTime getStealTime() {
        return stealTime;
    }
    
    public void setStealTime(LocalDateTime stealTime) {
        this.stealTime = stealTime;
    }
    
    public Boolean getRecoveryAttempted() {
        return recoveryAttempted;
    }
    
    public void setRecoveryAttempted(Boolean recoveryAttempted) {
        this.recoveryAttempted = recoveryAttempted;
    }
    
    public Boolean getRecoverySuccess() {
        return recoverySuccess;
    }
    
    public void setRecoverySuccess(Boolean recoverySuccess) {
        this.recoverySuccess = recoverySuccess;
    }
    
    public Boolean getEntryKept() {
        return entryKept;
    }
    
    public void setEntryKept(Boolean entryKept) {
        this.entryKept = entryKept;
    }
    
    public LocalDateTime getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
}
